Real-time recommendation browser plug-in

ABSTRACT

Systems, methods, and computer-readable media for performing operations comprising: extracting product information from a webpage; getting recommendations from an online marketplace server; and displaying the recommendation from the online marketplace server in a plug-in on the webpage.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.61/872,015, filed Aug. 30, 2013, entitled “REAL-TIME RECOMMENDATIONBROWSER PLUG-IN,” which is incorporated herein by reference in itsentirety.

TECHNICAL FIELD

The present application relates generally to the technical field ofinternet commerce, and, in one specific example, to a system and methodof providing real-time recommendations of listings of items (e.g.,products or services) on a second marketplace system based on adetermination that the user is browsing the same or similar items on afirst marketplace system.

BACKGROUND

While shopping for items on the Internet, a user may access informationpertaining to the items on a web page of a first web system withoutbeing aware that the same or similar items are available for purchasingon a second web system.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings.

FIG. 1 is a network diagram depicting a client-server system withinwhich one example embodiment may be deployed.

FIG. 2A is a screenshot of an example user interface that includes auser interface 202 in the top right corner for presenting real-timerecommendations pertaining to an item that a user may be interested in.

FIG. 2B is a screenshot of an additional example user interface thatincludes a user interface in the top right corner for presentingreal-time recommendations pertaining to an item that a user may beinterested in.

FIG. 3 is a screenshot of example structured data corresponding to acontent page that is analyzed by the real-time recommendation plug-in ofFIG. 2A;

FIG. 4 is an example embodiment of a method of getting a recommendationfrom an online marketplace in real-time.

FIG. 5 is an example embodiment of a sequence diagram for displayingrecommended items in a user interface of a software applicationexecuting on a device of the user (e.g., a web browser).

FIG. 6 is a block diagram of machine in the example form of a computersystem within which instructions, for causing the machine to perform anyone or more of the methodologies discussed herein, may be executed.

DETAILED DESCRIPTION

Example methods and systems to provide real-time recommendations in aweb browser application are described. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of example embodiments. Itwill be evident, however, to one skilled in the art that the presentinvention may be practiced without these specific details.

The described systems and methods leverage the structured dataassociated with production description, view item, and review pages onshopping websites, and showing real time recommendations from apreferred online marketplace.

FIG. 1 is a network diagram depicting a client-server system 100, withinwhich one example embodiment may be deployed. A networked system 102, inthe example forms of a network-based marketplace or publication system,provides server-side functionality, via a network 104 (e.g., theInternet or Wide Area Network (WAN)) to one or more clients. FIG. 1illustrates, for example, a web client 106 (e.g., a browser), and aprogrammatic client 108 executing on respective client machines 110 and112.

An Application Program Interface (API) server 114 and a web server 116are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 118. The application servers 118host one or more marketplace applications 120 and payment applications122. The application servers 118 are, in turn, shown to be coupled toone or more databases servers 124 that facilitate access to one or moredatabases 126.

The marketplace applications 120 may provide a number of marketplacefunctions and services to users that access the networked system 102.The payment applications 122 may likewise provide a number of paymentservices and functions to users. The payment applications 122 may allowusers to accumulate value (e.g., in a commercial currency, such as theU.S. dollar, or a proprietary currency, such as “points”) in accounts,and then later to redeem the accumulated value for products (e.g., goodsor services) that are made available via the marketplace applications120. While the marketplace and payment applications 120 and 122 areshown in FIG. 1 to both form part of the networked system 102, it willbe appreciated that, in alternative embodiments, the paymentapplications 122 may form part of a payment service that is separate anddistinct from the networked system 102.

Further, while the system 100 shown in FIG. 1 employs a client-serverarchitecture, the present invention is of course not limited to such anarchitecture, and could equally well find application in a distributed,or peer-to-peer, architecture system, for example. The variousmarketplace and payment applications 120 and 122 could also beimplemented as standalone software programs, which do not necessarilyhave networking capabilities.

The web client 106 accesses the various marketplace and paymentapplications 120 and 122 via the web interface supported by the webserver 116. Similarly, the programmatic client 108 accesses the variousservices and functions provided by the marketplace and paymentapplications 120 and 122 via the programmatic interface provided by theAPI server 114. The programmatic client 108 may, for example, be aseller application (e.g., the TurboLister application developed by eBayInc., of San Jose, Calif.) to enable sellers to author and managelistings on the networked system 102 in an off-line manner, and toperform batch-mode communications between the programmatic client 108and the networked system 102.

FIG. 1 also illustrates a third party application 128, executing on athird party server machine 130, as having programmatic access to thenetworked system 102 via the programmatic interface provided by the APIserver 114. For example, the third party application 128 may, utilizinginformation retrieved from the networked system 102, support one or morefeatures or functions on a website hosted by the third party. The thirdparty website may, for example, provide one or more promotional,marketplace or payment functions that are supported by the relevantapplications of the networked system 102.

FIG. 2A is a screenshot of an example user interface 200 that includes auser interface 202 in the top right corner for presenting real-timerecommendations pertaining to an item that a user may be interested in.The real-time plug-in may gather information pertaining to listings ofan item that the user may be interested based on information extractedfrom structured data, rich data, metadata, or other data associated witha web page that the user is currently browsing. For example, based on adetermination that the user is browsing a web page pertaining to acamera on a first ecommerce web site, such as a web site of a vendor ofthe camera, the plugin may present the user with information pertainingto one or more listings of the same camera (or a similar camera) on asecond ecommerce web site (e.g., eBay). Thus, before the user purchasesthe camera from the vendor, the user may be presented with informationpertaining to alternative purchasing options.

For example, as will be described in more detail below, the plugin mayextract information pertaining to the item that the user may interestedin from structured data on a content page that the user is browsing.Such information may include the title, model number, manufacturer,vendor, price, and so on. Then, based on a recommendation received froma web site that is separate from the web site presenting the contentpage that the user is currently browsing, the plug in may presentinformation pertaining to listings of the item (or a similar item) onthe separate web site. For example, the plugin may present a drop downwindow or toolbar, such as the user interface 202 of FIG. 2A, thatincludes information pertaining to one or more listings on a separateweb site of items that are the same as or similar to the items that theuser is currently browsing. The information presented in the userinterface may include any information that the separate web sitemaintains with respect to the listings of the items, such as photos ofthe items, descriptions of the items, specifications of the items, howmany of listings of the item may be found on the separate web site, thelisting prices of the items, current auction prices of the items,buy-it-now prices of the items, time remaining in auctions of the items,numbers of watchers of the listings of the items, information pertainingto the sellers of the item (ratings, usernames etc.), terms orguarantees pertaining to the listings, and so on.

In various embodiments, one or more listings may be presented asthumbnails or condensed information in a scrollable region of a userinterface presented by the plugin. Thus, the user may view informationpertaining to the various listings on the external web site withoutleaving the user's current web browsing context.

FIG. 2B is a screenshot of an example user interface 250 that includes auser interface 252 in the top right corner for presenting real-timerecommendations pertaining to an item that a user may be interested in.Here, the user is browsing a web page of a first web site that featuresa smart phone. As a result of a determination that the same type ofsmart phone or a similar smart phone is listed on a second web site(e.g., based a comparison of model number or other informationpertaining to the item on the content page being browsed by the user onthe first web site and information pertaining to the listings ofadditional items on the second web site), the plugin presentsinformation to the user pertaining to the listings on the second website. In various embodiments, the presenting of the informationpertaining to the listings includes how much money the user may save bypurchasing the product on the external web site instead of the currentweb site (e.g., expressed as a percentage savings, such as 29% less, 18%less, and so on).

FIG. 3 is a screenshot of example structured data corresponding to acontent page being browsed by a user that is analyzed by the real-timerecommendation plug-in of FIG. 2A. Various e-commerce sites, vendorsites, blogs, and review sites may use a structured data protocol, suchas microformats, open graph protocol, or Twitter Card. Microformats maybe used to yield better Google search results placement and moreprominent result descriptions. In microformats, structured data such astitle, image, price, etc. are structured through predefined HTMLattributes. Open graph protocol is used by pages using Facebook socialplugins such as “like” and “comments”. The structured data may beembedded in meta tags.

So, when a user is using an Internet browser (e.g., Google Chrome,Internet Explorer, and so on) to browse content (e.g., a web page)pertaining to an item listed on a network-based publication system,e-commerce, or marketplace web site or system (e.g., eBay, Amazon.com,craigslist, and so on), an extension (e.g., a plug-in) of the Internetbrowser application may extract information from the structured dataassociated with the content, such as a title of an item that a user isbrowsing or otherwise has demonstrated an interest in (e.g., based on amonitoring of the user's behaviour with respect to the content). Forexample, the extension may extract the information from structured datathat is associated with the content using the microformats or open graphprotocol. Furthermore, the extension may use the extracted informationwhen calling an API (e.g., a finding API or a shopping API) of anadditional network-based publication system or online marketplace tofind listings of the same item on the additional system. In someembodiments, a dedicated Search/Recommendation API may be provided bythe additional system for access by the extension. The extension maythen neatly display search results (e.g., in a pop-down window) inconjunction with the same page that the user is browsing and from whichthe information was extracted by the extension (see, e.g., FIGS. 2A and2B). From the pop-down, if the user is interested in the resultsreturned by the extension, he/she can navigate to a listingcorresponding to the item (e.g., by clicking on a product image or asearch result page link). In this way, the user may be provided withgreat visibility to product pricing or other information as provided bythe additional online marketplace.

In one example embodiment, the extension may be implemented as ChromeExtensions built with core technologies like jQuery, HTML, and CSS. Thealgorithms used to implement the Chrome Extensions may be used to buildplugins for other browsers like Internet Explorer. Safari, FireFox,Opera, etc. In various embodiments, the plugin may call server-sidecommands to extract data from the content page that the user iscurrently browsing or visiting. For example. Custom Scripts may be usedto extract a title of an item that is associated with web pages or sitesthat the user frequently visits or that are otherwise popular with theuser. If a Custom Recommendation service of the additional marketplacesystem is used by the plug-in, the data posted to the recommendationservice may be used by the additional marketplace system to givepersonalized recommendation when the user accesses (e.g., browses a webpage of) the additional online marketplace.

FIG. 4 is an example embodiment of a method 400 of getting arecommendation from an online marketplace in real-time. In variousembodiments, operations of the method 400 may be performed by one ormore of the marketplace application(s) 120.

At operation 402, product information is extracted by the plug-in. Invarious embodiments, the plug-in uses standard structured data (e.g.,microformats data) associated with many e-commerce websites. Or theplug-in uses site-specific data (e.g., structured data defined in websites of vendors of items that a user is browsing, such as Nokia, Canon,or other vendor web sites.

At operation 404, the plugin gets a recommendation from anonline-marketplace that is separate from the online marketplace orvendor web site that the user is currently browsing. For example, if theuser is currently browsing a camera or a mobile phone on a vendor website, the plug-in may get a recommendation from an additional web site(e.g., eBay.com) pertaining to a listing of the same item on theadditional web site. In various embodiments, the plugin may call an APIof a service provided by the additional web site, such as a FindingService or a Shopping Service, providing the information extracted instep 404 as a parameter of the API. In various embodiments, the callingof the Finding Service may take a form such as {OPERATION-NAME:findItemsByKeywords}. In various embodiments, the calling of theShopping Service may take a form such as {CALL-NAME: Finditems}. The APImay then return results corresponding to the API call.

At operation 406, the plugin may present the results to the user on adevice of the user. For example, the plugin may present the results in apop-up window as depicted in FIGS. 2A and 2B, allowing the user to viewthe results without leaving the web page that the user is currentlybrowsing.

In various embodiments, the plugin may determine to get productrecommendations from the additional marketplace based on anidentification of a market segment in which an item that the user isinterested belongs. For example, the plugin may be used, for example, toget recommendations for products in segments including books, memorycards, laptops, mobile phones, digital cameras, and accessories forlaptops, mobile phones, and digital cameras.

In various embodiments, user history or profile data (e.g., ascommunicated to the additional marketplace system by the plugin) may beretrieved, used to personalize recommendations, and show more relevantpersonalized recommendations or deals to the user when the user accessesthe additional marketplace system (e.g., by browsing to the home page ofthe additional online marketplace system).

FIG. 5 is an example embodiment of a sequence diagram for displayingrecommended items in a user interface of a software applicationexecuting on a device of the user (e.g., a web browser). In variousembodiments, the plugin detects an accessing of a web page of a firstweb site that is associated with an item that is listed (e.g., as beingfor sale) on a second web site (e.g., eBay). For example, the plugin maygenerate a document including information extracted from the web page,such as information extracted from structured data (e.g., microformatsor rich snippets) that specifies a title or other information pertainingto an item that the user may be interested in, or information extractedfrom social tags (e.g., open graph or Twitter card) associated with theweb page. The plugin may then send the document to an applicationexecuting on the server of the second web site (e.g., eBay) forcrawling. The crawling application may crawl the document and thenidentify a match for the item (e.g., a listing of the item on the secondweb site that matches the information extracted from the web page of thefirst web site). For example, the crawling application may call a FindItem Service, providing some or all of the information extracted fromthe document received from the plugin. The Find Item Service may thenreturn one or more relevant matches (e.g., one or more links to listingsof the item on the second web site, information pertaining to thelistings of the items on the second web site, such as price, quantity,or other information maintained by the second web site with respect tothe listing).

The crawling application may then generate or build a user interface forpresenting some or all of the information returned by the Find ItemService with respect to the item. The crawling application may thencommunicate the user interface to the plugin for displaying to the userin conjunction with the web page that the user is currently viewing andfrom which the information about the item was extracted.

Although client-side functionality is described above as being includedin a plug-in of a web browser application, one skilled in the art wouldunderstand that the client-side functionality described above may alsobe implemented as a stand-alone application executing on a client deviceof a user or as a plug-in or extension of other types of applications inaddition to web-browser applications. Additionally, although somefunctionality is described above as being client-side functionality andother functionality is described above as being server-sidefunctionality, one skilled in the art would understand that thisfunctionality may be distributed in various additional ways betweenclient systems and server systems.

Modules, Components and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied (1) on a non-transitorymachine-readable medium or (2) in a transmission signal) orhardware-implemented modules. A hardware-implemented module is tangibleunit capable of performing certain operations and may be configured orarranged in a certain manner. In example embodiments, one or morecomputer systems (e.g., a standalone, client or server computer system)or one or more processors may be configured by software (e.g., anapplication or application portion) as a hardware-implemented modulethat operates to perform certain operations as described herein.

In various embodiments, a hardware-implemented module may be implementedmechanically or electronically. For example, a hardware-implementedmodule may comprise dedicated circuitry or logic that is permanentlyconfigured (e.g., as a special-purpose processor, such as a fieldprogrammable gate array (FPGA) or an application-specific integratedcircuit (ASIC)) to perform certain operations. A hardware-implementedmodule may also comprise programmable logic or circuitry (e.g., asencompassed within a general-purpose processor or other programmableprocessor) that is temporarily configured by software to perform certainoperations. It will be appreciated that the decision to implement ahardware-implemented module mechanically, in dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.,configured by software) may be driven by cost and time considerations.

Accordingly, the term “hardware-implemented module” should be understoodto encompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarily ortransitorily configured (e.g., programmed) to operate in a certainmanner and/or to perform certain operations described herein.Considering embodiments in which hardware-implemented modules aretemporarily configured (e.g., programmed), each of thehardware-implemented modules need not be configured or instantiated atany one instance in time. For example, where the hardware-implementedmodules comprise a general-purpose processor configured using software,the general-purpose processor may be configured as respective differenthardware-implemented modules at different times. Software mayaccordingly configure a processor, for example, to constitute aparticular hardware-implemented module at one instance of time and toconstitute a different hardware-implemented module at a differentinstance of time.

Hardware-implemented modules can provide information to, and receiveinformation from, other hardware-implemented modules. Accordingly, thedescribed hardware-implemented modules may be regarded as beingcommunicatively coupled. Where multiple of such hardware-implementedmodules exist contemporaneously, communications may be achieved throughsignal transmission (e.g., over appropriate circuits and buses) thatconnect the hardware-implemented modules. In embodiments in whichmultiple hardware-implemented modules are configured or instantiated atdifferent times, communications between such hardware-implementedmodules may be achieved, for example, through the storage and retrievalof information in memory structures to which the multiplehardware-implemented modules have access. For example, onehardware-implemented module may perform an operation, and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware-implemented module may then,at a later time, access the memory device to retrieve and process thestored output. Hardware-implemented modules may also initiatecommunications with input or output devices, and can operate on aresource (e.g., a collection of information).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or processors or processor-implementedmodules. The performance of certain of the operations may be distributedamong the one or more processors, not only residing within a singlemachine, but deployed across a number of machines. In some exampleembodiments, the processor or processors may be located in a singlelocation (e.g., within a home environment, an office environment or as aserver farm), while in other embodiments the processors may bedistributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., Application Program Interfaces (APIs)).

Electronic Apparatus and System

Example embodiments may be implemented in digital electronic circuitry,or in computer hardware, firmware, software, or in combinations of them.Example embodiments may be implemented using a computer program product,e.g., a computer program tangibly embodied in an information carrier,e.g., in a machine-readable medium for execution by, or to control theoperation of, data processing apparatus, e.g., a programmable processor,a computer, or multiple computers.

A computer program can be written in any form of programming language,including compiled or interpreted languages, and it can be deployed inany form, including as a stand-alone program or as a module, subroutine,or other unit suitable for use in a computing environment. A computerprogram can be deployed to be executed on one computer or on multiplecomputers at one site or distributed across multiple sites andinterconnected by a communication network.

In example embodiments, operations may be performed by one or moreprogrammable processors executing a computer program to performfunctions by operating on input data and generating output. Methodoperations can also be performed by, and apparatus of exampleembodiments may be implemented as, special purpose logic circuitry,e.g., a field programmable gate array (FPGA) or an application-specificintegrated circuit (ASIC).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. Inembodiments deploying a programmable computing system, it will beappreciated that that both hardware and software architectures requireconsideration. Specifically, it will be appreciated that the choice ofwhether to implement certain functionality in permanently configuredhardware (e.g., an ASIC), in temporarily configured hardware (e.g., acombination of software and a programmable processor), or a combinationof permanently and temporarily configured hardware may be a designchoice. Below are set out hardware (e.g., machine) and softwarearchitectures that may be deployed, in various example embodiments.

Example Machine Architecture and Machine-Readable Medium

FIG. 6 is a block diagram of machine in the example form of a computersystem 600 within which instructions, for causing the machine to performany one or more of the methodologies discussed herein, may be executed.In alternative embodiments, the machine operates as a standalone deviceor may be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 600 includes a processor 602 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 604 and a static memory 606, which communicate witheach other via a bus 608. The computer system 600 may further include avideo display unit 610 (e.g., a liquid crystal display (LCD) or acathode ray tube (CRT)). The computer system 600 also includes analphanumeric input device 612 (e.g., a keyboard or a touch-sensitivedisplay screen), a user interface (UI) navigation device 614 (e.g., amouse), a disk drive unit 616, a signal generation device 618 (e.g., aspeaker) and a network interface device 620.

Machine-Readable Medium

The disk drive unit 616 includes a machine-readable medium 622 on whichis stored one or more sets of instructions and data structures (e.g.,software) 624 embodying or utilized by any one or more of themethodologies or functions described herein. The instructions 624 mayalso reside, completely or at least partially, within the main memory604 and/or within the processor 602 during execution thereof by thecomputer system 600, the main memory 604 and the processor 602 alsoconstituting machine-readable media.

While the machine-readable medium 622 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore instructions or data structures. The term “machine-readable medium”shall also be taken to include any tangible medium that is capable ofstoring, encoding or carrying instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of the present invention, or that is capable of storing,encoding or carrying data structures utilized by or associated with suchinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, andoptical and magnetic media. Specific examples of machine-readable mediainclude non-volatile memory, including by way of example semiconductormemory devices, e.g., Erasable Programmable Read-Only Memory (EPROM),Electrically Erasable Programmable Read-Only Memory (EEPROM), and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

Transmission Medium

The instructions 624 may further be transmitted or received over acommunications network 626 using a transmission medium. The instructions624 may be transmitted using the network interface device 620 and anyone of a number of well-known transfer protocols (e.g., HTTP). Examplesof communication networks include a local area network (“LAN”), a widearea network (“WAN”), the Internet, mobile telephone networks, Plain OldTelephone (POTS) networks, and wireless data networks (e.g., WiFi andWiMax networks). The term “transmission medium” shall be taken toinclude any intangible medium that is capable of storing, encoding orcarrying instructions for execution by the machine, and includes digitalor analog communications signals or other intangible media to facilitatecommunication of such software.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single invention or inventive concept if morethan one is in fact disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

What is claimed is:
 1. A method comprising: determining that a user isbrowsing a content page served by a first marketplace system;determining that the content page includes information pertaining to anitem; determining that the information pertaining to the item relates toinformation pertaining to an additional item, the additional item beingincluded in a listing associated with a second marketplace system; andgenerating a user interface for presentation to the user, the userinterface configured to present the information pertaining to theadditional item while the user is browsing the content page served bythe first marketplace system, wherein the generating of the userinterface is performed by a computer processor.
 2. The method of claim1, wherein the determining that the content page includes informationpertaining to the item is based on a web crawler a document pertainingto the content page, the document being provided to the web crawler by aplugin application, the plug-in application executing within aweb-browser application, the web-browser application executing on aclient device of the user, the web crawler executing on a server of thesecond marketplace system.
 3. The method of claim 2, wherein thedetermining that the information pertaining to the item relates toinformation pertaining to an additional item is based on a crawling bythe web crawler of a plurality of listings on the second marketplacesystem, the plurality of listings including the listing in which theadditional item is included.
 4. The method of claim 1, wherein theidentifying that the content page includes information pertaining to theitem includes extracting the information from structured data associatedwith the content page.
 5. The method of claim 2, wherein the structureddata includes social tags as a fallback based on the structured data notincluding another open data format.
 6. The method of claim 1, whereinthe determining that the information pertaining to the item relates tothe information pertaining to the additional item is based on asimilarity between the information pertaining to the item and theinformation pertaining to the additional item.
 7. The method of claim 1,wherein the information pertaining to the item includes at least one ofa title of the item, a product description of the item, and a modelnumber of the item and the information pertaining to the additional itemincludes at least one of the title of the additional item, a productdescription of the additional item, and a model number of the additionalitem.
 8. A system comprising: one or more computer processors configuredto: determine that a user is browsing a content page served by a firstmarketplace system; determine that the content page includes informationpertaining to an item; determine that the information pertaining to theitem relates to information pertaining to an additional item, theadditional item being included in a listing on a second marketplacesystem; and generating a user interface for presentation to the user,the user interface configured to present the information pertaining tothe additional item while the user is browsing the content page servedby the first marketplace system.
 9. The system of claim 8, wherein thedetermining that the content page includes information pertaining to theitem is based on a web crawler a document pertaining to the contentpage, the document being provided to the web crawler by a pluginapplication, the plug-in application executing within a web-browserapplication, the web-browser application executing on a client device ofthe user, the web crawler executing on a server of the secondmarketplace system.
 10. The system of claim 9, wherein the determiningthat the information pertaining to the item relates to informationpertaining to an additional item is based on a crawling by the webcrawler of a plurality of listings on the second marketplace system, theplurality of listings including the listing in which the additional itemis included.
 11. The system of claim 8, wherein the identifying that thecontent page includes information pertaining to the item includesextracting the information from structured data associated with thecontent page.
 12. The system of claim 9, wherein the structured dataincludes social tags as a fallback based on the structured data notincluding another open data format.
 13. The system of claim 8, whereinthe determining that the information pertaining to the item relates tothe information pertaining to the additional item is based on asimilarity between the information pertaining to the item and theinformation pertaining to the additional item.
 14. The system of claim8, wherein the information pertaining to the item includes at least oneof a title of the item, a product description of the item, and a modelnumber of the item and the information pertaining to the additional itemincludes at least one of the title of the additional item, a productdescription of the additional item, and a model number of the additionalitem.
 15. A non-transitory machine readable storage medium storing a setof instructions that, when executed by at least one processor, causesthe at least one processor to perform operations comprising: determiningthat a user is browsing a content page served by a first marketplacesystem; determining that the content page includes informationpertaining to an item; determining that the information pertaining tothe item relates to information pertaining to an additional item, theadditional item being included in a listing associated with a secondmarketplace system; and generating a user interface for presentation tothe user, the user interface configured to present the informationpertaining to the additional item while the user is browsing the contentpage served by the first marketplace system, wherein the generating ofthe user interface is performed by a computer processor.
 16. Thenon-transitory machine readable storage medium of claim 15, wherein thedetermining that the content page includes information pertaining to theitem is based on a web crawler a document pertaining to the contentpage, the document being provided to the web crawler by a pluginapplication, the plug-in application executing within a web-browserapplication, the web-browser application executing on a client device ofthe user, the web crawler executing on a server of the secondmarketplace system.
 17. The non-transitory machine readable storagemedium of claim 16, wherein the determining that the informationpertaining to the item relates to information pertaining to anadditional item is based on a crawling by the web crawler of a pluralityof listings on the second marketplace system, the plurality of listingsincluding the listing in which the additional item is included.
 18. Thenon-transitory machine readable storage medium of claim 15, wherein theidentifying that the content page includes information pertaining to theitem includes extracting the information from structured data associatedwith the content page.
 19. The non-transitory machine readable storagemedium of claim 16, wherein the structured data includes social tags asa fallback based on the structured data not including another open dataformat.
 20. The non-transitory machine readable storage medium of claim15, wherein the determining that the information pertaining to the itemrelates to the information pertaining to the additional item is based ona similarity between the information pertaining to the item and theinformation pertaining to the additional item.